package com.tencent.wxcloudrun.controller.User;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.tencent.wxcloudrun.model.User;
import com.tencent.wxcloudrun.response.R;
import com.tencent.wxcloudrun.service.UserService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

/**
 * ClassName: UserController
 * Package: com.tencent.wxcloudrun.controller
 * Description:
 *
 * @Date: 2023/1/22 8:34 AM
 * @Author: wht
 */
@Slf4j
@RestController
@RequestMapping("/user")
public class UserController {
    @Autowired
    UserService userService;

//    @PutMapping("/addOne")
//    public <T> R<T> addOne(@RequestBody User user) {
//        boolean res = userService.save(user);
//
//        if (res) {
//            return R.AddSuccess();
//        } else {
//            return R.AddFail();
//        }
//    }

//    @DeleteMapping("/delOne")
//    public <T> R<T> delOne(@RequestParam(required = true, value = "id") Integer id) {
//        boolean res = userService.removeById(id);
//
//        if (res) {
//            return R.DelSuccess();
//        } else {
//            return R.DelFail();
//        }
//    }

//    @PatchMapping("/updateOne")
//    public <T> R<T> updateOne(@RequestBody User user) {
//        boolean res = userService.updateById(user);
//
//        if (res) {
//            return R.UpdateSuccess();
//        } else {
//            return R.UpdateFail();
//        }
//    }

    @GetMapping("/getOne")
    public <T> R<T> getOne(@RequestParam(required = true, value = "id") Integer id) {
        User user = userService.getById(id);
        return R.successData(user);
    }

    @GetMapping("/getList")
    public <T> R<T> getList(
            @RequestParam(value = "pageNum", required = false, defaultValue = "1") Integer pageNum,
            @RequestParam(value = "pageSize", required = false, defaultValue = "20") Integer pageSize
    ) {
        Page<User> page = new Page<>(pageNum, pageSize);
        List<User> list = userService.list(page);
        return R.successData(list);
    }
}